package com.sskj.fca.http;


import com.lzy.okgo.request.GetRequest;
import com.lzy.okgo.request.PostRequest;
import com.sskj.common.base.HttpData;
import com.sskj.common.http.WebSocketObserver;
import com.sskj.lib.bean.PageBean;
import com.sskj.lib.bean.UserBean;

import com.sskj.fca.bean.BackUserBean;
import com.sskj.fca.bean.BankBean;
import com.sskj.fca.bean.BankerHistoryListBean;
import com.sskj.fca.bean.BankersMainBean;
import com.sskj.fca.bean.BillRecordBean;
import com.sskj.fca.bean.CommonBean;
import com.sskj.fca.bean.ImgUrlBean;
import com.sskj.fca.bean.LinkBean;
import com.sskj.fca.bean.MyGuessBean;
import com.sskj.fca.bean.NewNoticeBean;
import com.sskj.fca.bean.NoticeBean;
import com.sskj.fca.bean.NoticeMsgBean;
import com.sskj.fca.bean.OpenAwardBean;
import com.sskj.fca.bean.RankBean;
import com.sskj.fca.bean.RechargeBean;
import com.sskj.fca.bean.RechargeListBean;
import com.sskj.fca.bean.RollMsg;
import com.sskj.fca.bean.RollPointsBean;
import com.sskj.fca.bean.ShowPayBean;
import com.sskj.fca.bean.ToRechargeBean;
import com.sskj.fca.bean.TxDataBean;
import com.sskj.fca.bean.UpdataBean;
import com.sskj.fca.bean.VcerifyBean;
import com.sskj.fca.bean.WalletBean;
import com.sskj.fca.bean.WithDrawBean;
import com.sskj.fca.bean.WithDrawLimitBean;

import java.io.File;
import java.util.List;

/**
 * 作者 :吕志豪
 * 简书：https://www.jianshu.com/u/6e525b929aac
 * github：https://github.com/lvzhihao100
 * 描述：
 * 创建时间：2018-10-15 14:08
 */
public interface IHttpService {

    /**
     * 登录
     *
     * @param pswd    密码
     * @param account 账号
     * @return
     */
    PostRequest<HttpData<BackUserBean>> login(String account, String pswd);

    /**
     * 上传图片
     *
     * @param file 文件
     * @return
     */
    PostRequest<HttpData> uploadImg(File file);

    /**
     * 上传图片
     *
     * @param url 图片路径
     * @return
     */
    PostRequest<HttpData<ImgUrlBean>> uploadPhoto(String url);

    //注册
    PostRequest<HttpData> register(String mobile, String opwd, String code, String tjuser, String realname);

    //忘记密码
    PostRequest<HttpData> pwdForget(String code, String mobile, String opwd);

    //重置密码
    PostRequest<HttpData> pwdReset(String oldpwd, String opwd, String opwd1);

    //获取充值地址
    PostRequest<HttpData<ToRechargeBean>> getRechargeUrl(String price);

    //获取充值地址
    PostRequest<HttpData<ToRechargeBean>> getRechargeUrlOther(String price);

    //公共数据
    PostRequest<HttpData<CommonBean>> getCommonData();

    //推广二维码地址/推广地址
    PostRequest<HttpData<LinkBean>> getLinkData();

    //用户信息
    PostRequest<HttpData<UserBean>> userInfo(String money_type);

    //公告列表
    PostRequest<HttpData<PageBean<NoticeBean>>> noticeList(int page, int size);

    //是否有新消息
    PostRequest<HttpData<NewNoticeBean>> isHaveNoticeList(int page, int size);

    //提现记录
    PostRequest<HttpData<PageBean<WithDrawBean>>> getWithDrawList(int page, int size);

    //公告详情
    PostRequest<HttpData<NoticeMsgBean>> noticeMsg(String id);

    //排行榜列表
    PostRequest<HttpData<PageBean<RankBean>>> rankList(String money_type, String type, int page, int size);

    //更新换手机号
    PostRequest<HttpData> updataTel(String code, String tpwd, String new_mobile);

    //发送短信
    GetRequest<HttpData> sendCode(String mobile, String type);

    //获取提现页面信息（汇率，提币地址）
    GetRequest<HttpData<TxDataBean>> getTxData();

    //提币限制
    GetRequest<HttpData<WithDrawLimitBean>> withDrawLimit();

    //充币页面展示二维码
    PostRequest<HttpData<RechargeBean>> getRecharge();

    //账单流水
    PostRequest<HttpData<PageBean<BillRecordBean>>> billRecordList(String money_type, String start_time, String end_time, int page, int size);

    //开奖历史
    PostRequest<HttpData<PageBean<OpenAwardBean>>> openAwardList(String account, int page, int size);

    //我的竞猜
    PostRequest<HttpData<PageBean<MyGuessBean>>> myGuessList(int page, int size);

    //设置支付密码
    PostRequest<HttpData> setPayPwd(String tpwd, String account, String code, String mobile);

    //庄家奖池-主页
    PostRequest<HttpData<BankersMainBean>> bankerPoolMain(String money_type);

    //庄家奖池-历史
    PostRequest<HttpData<BankerHistoryListBean>> bankerPoolHistory(String money_type, int page, int size);

    //展示钱包地址
    PostRequest<HttpData<PageBean<WalletBean>>> walletAddressList();

    //添加钱包地址
    PostRequest<HttpData> addWallet(String address, String remark);

    //删除钱包地址
    PostRequest<HttpData> deleteWallet(String id);

    //庄家注入/抽取
    PostRequest<HttpData> bankerInOut(String type, String money);

    //删除钱包地址
    PostRequest<HttpData> normalBet(String type, String money, String escape_beishu);

    //充值记录
    PostRequest<HttpData<PageBean<RechargeListBean>>> rechargeList(int page, int size);

    //历史查询
    PostRequest<HttpData<PageBean<VcerifyBean>>> vcerify(String hash, String num);

    //提币
    PostRequest<HttpData> withDraw(String type,String code, String address, String price, String tpwd, String pid);

    //提币通道二
    PostRequest<HttpData<ToRechargeBean>> withDrawTwo(String code, String tpwd);

    //Roll点页面信息
    PostRequest<HttpData<RollMsg>> rollMsg();

    //版本升级
    PostRequest<HttpData<UpdataBean>> updata(String version);

    //普通用户逃跑
    PostRequest<HttpData> normalRun();

    //Roll点数
    PostRequest<HttpData<RollPointsBean>> rollPoints();

    //全民代理申请
    PostRequest<HttpData> applyAgent(String name, String mobile, String card1, String card2);

    //添加支付方式
    PostRequest<HttpData> addPayWay(String address, String realname, String bankcard, String branch, String bankCode, String bank);

    //展示支付方式
    PostRequest<HttpData<ShowPayBean>> showPay();

    WebSocketObserver pushBloomType(String type);

    //银行种类
    PostRequest<HttpData<List<BankBean>>> getBanks();
}